package com.coinland.study.window;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;

import com.coinland.study.util.Contant;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;

import java.util.ArrayList;
import java.util.List;

/**
 * 类描述:
 * 创建人:  shenZ
 * 创建时间: 2020/4/15
 * 联系方式: 252079249@qq.com
 * 修改时间: 2020/4/15
 */
public class SPUtils<T> {

    /**
     * 保存list数据  String
     *
     * @param context
     * @param name
     * @param lists
     */
    public void saveList(Context context, String name, List<T> lists) {
        SharedPreferences preferences = context.getSharedPreferences(Contant.SP_DATAS, Activity.MODE_PRIVATE);

        String jsonStr = null;
        if(lists == null){
            jsonStr = "";
        }else{
            Gson gson = new Gson();
            jsonStr = gson.toJson(lists);
        }
        SharedPreferences.Editor editor = preferences.edit();
        editor.putString(name, jsonStr);// 存入json串
        editor.commit();
    }

    /**
     * 获取list数据 String
     *
     * @param context
     * @param name
     */
    public  List<T> getList(Context context, String name,Class<T> cls) {
        SharedPreferences preferences = context.getSharedPreferences(Contant.SP_DATAS, Activity.MODE_PRIVATE);
        String listJson = preferences.getString(name, "");
        List<T> list = new ArrayList<>();

        if (!TextUtils.isEmpty(listJson)) {
            try {
                Gson gson = new Gson();
                JsonArray arry = new JsonParser().parse(listJson).getAsJsonArray();
                for (JsonElement jsonElement : arry) {
                    list.add(gson.fromJson(jsonElement, cls));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return list;
    }

}
